package day02;

import javax.security.auth.callback.LanguageCallback;
import java.math.BigDecimal;
import java.math.BigInteger;




















//数据类型演示
public class DateTypeDemo {//数据类型例子
    public static void main(String[] args) {




        //6）类型间的转换
        int a =5;
        long b =a;//自动/隐式类型转换
        int c =(int)b;//强制类型转换
        long d =5;//自动类型转换
        double e = 5;//自动类型转换
        System.out.println(e);//5.0
        long f =10000000000L;
        int g =(int) f;
        System.out.println(g);//1410065408，强转有可能发生溢出
        double h =25.987;
        int i =(int) h;
        System.out.println(i);//25，强转有可能丢失精度



        //整数直接量可以直接赋值给byte,short,char,但不能超出范围
        //byte,short,char型数据参与运算时，系统一律将其转换为int再运算
        byte b1 =5;
        byte b2 =7;
        byte b3=(byte)(b1+b2);
        System.out.println(2+2);//4
        System.out.println(2+'2');//52
        System.out.println('2'+'2');//100
        System.out.println('2');//2
        int a11 ='我';//看字符对应的码
        System.out.println(a11);//'我'的码
        char b11 =78;//看码对应的字符
        System.out.println(b11);//A


































        /*
     //5)char:字符型，2个字节
        char a1 ='男';//字符男
        char a2 ='L';//字符L
        char a3 ='9';//字符9
        char a4 ='*';//字符*
        //char a5 =男；//编译错误，字符直接量必须在单引号中
        //char a6 =''；//编译错误，必须有字符
        //char a7 ='19';//编译错误，只能装一个字符
        char a8 =6997;//0-65535之间
        System.out.println(a8);//'A'println()时会依据a8的类型做输出展示
                               //若A8为char类型，则以字符形式展示
                               //若A8为int类型，则以数字形式展示
        char a9 ='\'';         //特殊符号要用\转意
        System.out.println(a9);

    */
















       /*
        //4)boolean 布尔型1个字节 只能存储true或false
        boolean a =true;//true为布尔型直接量
        boolean b=false;//false为布尔型直接量
        //boolean c = 25.3;//编译错误，布尔型只能存储true或false
        int c =36;
        int d =45;
        System.out.println(c>d);

        */



























       /*
        //3)double:浮点型，8个字节，很大很大很大
        double a =26.578;//26.578为小数直接量，默认double类型
        float b =26.578F;//26.578F为float型直接量
        double c =3.0,d=2.9;
        System.out.println(c-d);//0.10000000000000009,发生舍入误差了

        */
































        /*
        //2)long:长整型，8个字节，-900万万亿多到900万万亿多
        long a =25L;//25L为长整型直接量
        //lang b =10000000000;//编译错误，100亿默认为int类型，但超出int范围
        long c =1000000000L;//100亿L为长整型直接量
        long d =365L*24*60*60*1000;//去年一年所经历的毫秒数
        System.out.println(d);//31536000000
        long e =1000000000*2*10L;
        System.out.println(e);//200亿
        long f =1000000000*2*10L;
        System.out.println(f);//不是300亿
        long b =1000000000L*2*10;
        System.out.println(b);//300亿
*/
















        /*
        //1） int:整型，4个字节，-21个多亿到21个多亿
        int a =250;//250为整数直接量，默认为int类型
        //int b =10000000000;//编译错误，100亿默认为int范围，但超出范围
        //int c =25.678;//编译错误，整型变量中只能是整数
        System.out.println(5/2);//2//两个整数相除，结果还是整数，小数位不会四舍五入
        System.out.println(2/5);//0
        System.out.println(5.0/2);//2.5
        int d =2147483647;
        d = d+2147483647;
        System.out.println(d);//发生溢出了

         */

    }
}
